const gulp = require('gulp') //打包

const cssmin = require('gulp-cssmin') //css压缩
const uglify = require('gulp-uglify') //js压缩
const htmlmin = require('gulp-htmlmin')
// const del = require('del')
// const babel = require('gulp-babel')
// 打包css
const cssHandler = () => {
  return gulp
    .src('./src/css/*.css')
    // .pipe(autoprefixer())
    .pipe(cssmin())
    .pipe(gulp.dest('./dist/css/'))
}
// 打包html
const htmlHandler = () => {
  // 4-1. 找到 html 文件
  return gulp
    .src('./src/pages/*.html')
    // 因为 htmlmin 的所有打包信息都需要以参数的形式进行配置
    .pipe(htmlmin({ // 压缩
      collapseWhitespace: true, // 去除空白内容
      collapseBooleanAttributes: true, // 简写布尔值属性
      removeAttributeQuotes: true, // 去除属性上的双引号
      removeComments: true, // 去除注释
      removeEmptyElements: true, // 去除空元素
      removeEmptyAttributes: true, // 去除空的属性
      removeScriptTypeAttributes: true, // 去除 script 标签上的 type 属性
      removeStyleLinkTypeAttributes: true, // 去除 style 标签和 link 标签上的 type 属性
      minifyJS: true, // 压缩内嵌式 js 代码, 不认识 ES6
      minifyCSS: true, // 压缩内嵌式 css 文本, 不能自动加前缀
    }))
    .pipe(gulp.dest('./dist/pages/')) // 保存
}
// 打包js
const jsHandler = () => {
  // 3-1. 找到 js 文件
  return gulp
    .src('./src/js/*.js')
    // .pipe(babel({ presets: ['@babel/env'] })) // ES6 转码
    .pipe(uglify()) // 压缩
    .pipe(gulp.dest('./dist/js/')) // 保存
}
// 转存插件
const assetsHandler = () => {
  return gulp
    .src('./src/assets/*/**')
    .pipe(gulp.dest('./dist/assets'))
}
// 覆盖
// const delHandler = () => {
//   return del('./dist/')
// }


module.exports.cssHandler = cssHandler
module.exports.jsHandler = jsHandler
module.exports.htmlHandler = htmlHandler

module.exports.assetsHandler = assetsHandler
// module.exports.delHandler = delHandler
